//
//#ifndef SX_MSM_SIMULATION_RECORDER_H
//#define SX_MSM_SIMULATION_RECORDER_H
//
//#include <sxSimluationListener.h>
//#include <sxMassSpringSimulation.h>
//
//namespace Sx {
//namespace Simulation {
//namespace Recording {
//
//class MSM_SimulationRecording;
//
//class MSM_SimulationRecorder : public SimulationListener {
//public:
//	MSM_SimulationRecorder();
//	virtual ~MSM_SimulationRecorder();
//
//	bool setSimulation(Simulations::MassSpringSimulation* simulation);
//
//	/* 
//	 * Internal events will be called (by the simulation listener interface)
//	 * automatically, therefore this toggle will prevent frames from being
//	 * recorded if recording is set to false.
//	 */
//	void setRecording(bool recording);
//	bool isRecording() const;
//
//	/* Simulation Listener Interface Implementation */
//	void onConstruct();
//	void preUpdate();
//	void postUpdate();
//	void preRender();
//	void postRender();
//	void onReset();
//	void onPause();
//	void onResume();
//	void onDestroy() {}
//
//	MSM_SimulationRecording* const getRecording() const;
//
//protected:
//	/* POINTER_OWNERSHIP: NO */
//	Simulations::MassSpringSimulation* simulation;
//
//	/* POINTER_OWNERSHIP: YES */
//	MSM_SimulationRecording* recording;
//	bool activelyRecording;
//};
//
//}
//
//}
//
//}
//
//#endif
